import { Entity } from "../../../../../Core/Module/Entity/Entity";
import { FUIEntity } from "./FUIEntity";

export interface IFUIEventHandler {
    /// <summary>
    /// UI实体加载后,初始化窗口数据
    /// </summary>
    /// <param name="fuiEntity"></param>
    OnInitPanelCoreData(fuiEntity: FUIEntity): void;

    /// <summary>
    /// UI实体加载后，初始化业务逻辑数据
    /// </summary>
    /// <param name="fuiEntity"></param>
    OnInitComponent(fuiEntity: FUIEntity): void;

    /// <summary>
    /// 注册UI业务逻辑事件
    /// </summary>
    /// <param name="fuiEntity"></param>
    OnRegisterUIEvent(fuiEntity: FUIEntity): void;

    /// <summary>
    /// 打开UI窗口的业务逻辑
    /// </summary>
    /// <param name="fuiEntity"></param>
    /// <param name="contextData"></param>
    OnShow(fuiEntity: FUIEntity, contextData?: Entity): void;

    /// <summary>
    /// 隐藏UI窗口的业务逻辑
    /// </summary>
    /// <param name="fuiEntity"></param>
    OnHide(fuiEntity: FUIEntity): void;

    /// <summary>
    /// 完全关闭销毁UI窗口之前的业务逻辑，用于完全释放UI相关对象
    /// </summary>
    /// <param name="fuiEntity"></param>
    BeforeUnload(fuiEntity: FUIEntity): void;

}